Page({
  data: {
    region: [],  // 初始化为省市区的默认值
    regionIndex: [0, 0, 0],  // 存储省市区的选择索引
    tags: [],  // 存储擅长领域标签
    levelIndex: 0,  // 默认选中“选择咨询师等级”
    
    selectedGender: 'any',
    selectedMethod: 'all',
    selectedArea: '',  // 用于存储选中的地域字符串
    levelData: []  // 用于存储等级对象（包含 levelId 和 levelName）
  },

  onLoad: function() {
    // 页面加载时获取 extra 和 level 数据
    this.getExtra();
    this.getLevel();
    this.getArea();  // 获取地域数据并输出
  },

 
  

  // 获取 extra 数据并更新 tags
  getExtra: function() {
    wx.request({
      url: 'http://127.0.0.1:9090/getFields', 
      method: 'GET',
      success: (res) => {
        if (res.data && Array.isArray(res.data)) {
          const extraTags = res.data.map(item => ({ text: item, selected: false }));
          extraTags.unshift({ text: '全部', selected: true });  // 保证'全部'选项在最前
          this.setData({
            tags: extraTags
          });
          console.log("获取的 extra 数据: ", res.data);  // 输出获取的 tags 数据
        }
      },
      fail: (err) => {
        console.error('获取 extra 数据失败: ', err);
      }
    });
  },

  // 获取 level 数据并更新 levelOptions
  getLevel: function() {
    wx.request({
      url: 'http://127.0.0.1:9090/filter/level', 
      method: 'GET',
      success: (res) => {
        if (res.data && Array.isArray(res.data)) {
          const levelOptions = res.data.map(item => item.levelName);  // 提取等级名称用于显示
          this.setData({
            levelOptions: levelOptions,
            levelData: res.data  // 存储完整的等级对象（包含 levelId 和 levelName）
          });
          console.log("获取的 level 数据: ", res.data);  // 输出获取的 level 数据
        }
      },
      fail: (err) => {
        console.error('获取 level 数据失败: ', err);
      }
    });
  },



// 省市区选择器变化时的处理
bindRegionChange: function (e) {
  this.setData({
    region: e.detail.value
  });
},


  
  

  // 切换标签选择状态
  toggleTag: function(e) {
    const index = e.currentTarget.dataset.index;  // 获取点击标签的索引
    const tags = this.data.tags;
    let i = 0;

    // 如果点击的是“全部”，则取消选择所有其他标签
    if (index != 0) {
      tags[0].selected = false;
      this.setData({
        tags: tags
      });
    } else if (index == 0 && !this.data.tags[0].selected) {
      for (var t in this.data.tags) {
        tags[t].selected = false;
      }
      tags[0].selected = true;
      this.setData({
        tags: tags
      });
      return;
    }

    // 计算已选标签的数量，最多选择三个标签
    for (var tag of this.data.tags) {
      if (tag.selected) {
        i++;
      }
      if (i >= 3) {
        if (this.data.tags[index].selected) {
          break;
        }
        wx.showToast({
          title: '最多只能选择三个标签',
          icon: "none"
        });
        return;
      }
    }

    // 切换标签的选择状态
    if (tags[index]) {
      tags[index].selected = !tags[index].selected;
      this.setData({
        tags: tags
      });
    }
  },

  // 选择等级
  bindLevelChange: function(e) {
    const levelIndex = e.detail.value;
    const selectedLevelId = this.data.levelData[levelIndex].levelId;  // 获取选中的等级ID
    this.setData({
      levelIndex: levelIndex
    });
    console.log("选中的等级ID: ", selectedLevelId);  // 输出选中的等级ID
  },

  // 选择性别
  selectGender: function(e) {
    const gender = e.currentTarget.dataset.gender;
    this.setData({
      selectedGender: gender
    });
  },

  // 选择方式
  selectMethod: function(e) {
    const method = e.currentTarget.dataset.method;
    this.setData({
      selectedMethod: method
    });
  },

  // 重置筛选条件
  resetFilters: function() {
    this.setData({
      region: [],
      regionIndex: [0, 0, 0],
      tags: [],
      levelIndex: 0,
      selectedGender: 'any',
      selectedMethod: 'all',
    });

    this.getExtra();
    this.getLevel();
  },

  // 确认筛选条件
  confirmFilters: function() {
    const tags = this.data.tags.filter(tag => tag.selected).map(tag => tag.text);
    const tagsString = tags.includes('全部') ? null : tags.join(',');  // 如果选择了全部，tags为null
  
    const genderValue = this.data.selectedGender === 'any' ? '' : this.data.selectedGender;
  
    // 将 region 数组拼接成字符串
    const regionString = this.data.region.join('');
  
    const filters = {
      area: this.data.selectedArea || '',
      tags: tagsString,  // 如果选择了全部，tags为null，否则拼接标签
      level: this.data.levelData[this.data.levelIndex].levelId,  // 传递等级ID
      gender: genderValue,
      method: this.data.selectedMethod,
      region: regionString  // 添加 region 字符串
    };
    const filtersQuery = encodeURIComponent(JSON.stringify(filters));
 
    wx.navigateTo({
      url: `./filterDetail/filterDetail?filters=${filtersQuery}`,
    });
  
    wx.showToast({
      title: '筛选条件已确认',
      icon: 'success'
    });
  }
});
